#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 但是如何处理HTTP请求不是问题，问题是如何处理100个不同的URL。
# 每一个URL可以对应GET和POST请求，当然还有PUT、DELETE等请求，但是我们通常只考虑最常见的GET和POST请求。
# 一个最简单的想法是从environ变量里取出HTTP请求的信息，然后逐个判断：
# flask框架
from wsgiref.simple_server import make_server
# 然后写一个app.py，处理3个URL，分别是：
#     GET /：首页，返回Home；
#     GET /signin：登录页，显示登录表单；
#     POST /signin：处理登录表单，显示登录结果。
# 注意噢，同一个URL/signin分别有GET和POST两种请求，映射到两个处理函数中。
# Flask自带的Server在端口5000上监听：
from flask import Flask
from flask import request

app = Flask(__name__)


@app.route('/', methods=['GET', 'POST'])  # localhost:5000
def home():
    return '<h1>Home</h1>'


@app.route('/signin', methods=['GET'])  # localhost:5000/signin
def signin_form():
    return '''<form action="/signin" method="post">
              <p><input name="username"></p>
              <p><input name="password" type="password"></p>
              <p><button type="submit">Sign In</button></p>
              </form>'''


@app.route('/signin', methods=['POST'])  # localhost:5000/signin
def signin():
    # 需要从request对象读取表单内容：
    if request.form['username'] == 'admin' and request.form['password'] == 'password':
        return '<h3>Hello, admin!</h3>'
    return '<h3>Bad username or password.</h3>'


if __name__ == '__main__':
    app.run()
